package com.boss.salary.dao;

import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.entity.DepartmentInfo;

import java.util.List;
import java.util.Map;

public interface IdepartmentInfoDao {
    /**
     * 新增
     * @param departmentInfo
     */
    void insertDepartmentInfo(DepartmentInfo departmentInfo);

    /**
     * 根据id删除
     * @param id
     */
    void deleteDepartmentInfo(String id);

    /**
     * 修改
     * @param departmentInfo
     */
    void updateDepartmentInfo(DepartmentInfo departmentInfo);

    /**
     * 获取数据总量
     * @return
     */
    int queryDepartmentInfo(Map<String, Object> queryParam,List<String> childrenId);

    /**
     * 分页查询
     * @return
     */
    List<DepartmentInfo> queryDepartmentInfoPage(PaginationDTO paginationDTO,Map<String, Object> queryParam,List<String> childrenId);

    /**
     * 通过参数获取数据
     * @param parameters
     * @return
     */
    List<Map<String, String>> getBaseDataSelect(String parameters);

    /**
     * 获取全部数据
     * @return
     */
    List<DepartmentInfo> getAllDepartment(String agencyid,String mofDivCode);

    /**
     * 修改节点
     * @param id
     */
    void updatelIsLeaf(String id,Integer is_leaf);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    DepartmentInfo getDepartmentInfoById(String id);

    /**
     * 通过父id查询数量
     * @param parentid
     * @return
     */
    int getNumByParentId(String parentid);

    /**
     * 通过等级查询数量
     * @param agencyid
     * @return
     */
    int getNumByLevel1(String agencyid);

    /**
     * 验证是否重名
     * @param name
     * @return
     */
    int getNumByName(String name,String agencyid,String id);

    /**
     * 根据id 和公司id查询名字
     * @param agencyId
     * @param id
     * @return
     */
    String getNameById(String agencyId,String id);

    List<DepartmentInfo> getAgencyDept(String agencyId);
}
